package com.kj.tms.system.service.menu.dao;


import com.kj.tms.common.bean.dao.BaseMapper;
import com.kj.tms.common.bean.dto.TreeData;
import com.kj.tms.pri.system.menu.dto.DictDto;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * <p>项目名称：system<p>
 * <p>类名称：DictMapper<p>
 * <p>类描述：字典表Mapper<p>
 * @author 创建人：yangruidong
 * @author 创建时间： 2017年10月18日 9:41
 * @author 修改人：yangruidong
 * @author 修改时间：2017年10月18日 9:41
 * @author 修改备注：
 * @version: 2017年10月18日
 */
@Repository
public interface DictMapper extends BaseMapper<DictDto> {
    
    /**
     * 查询返回单个dto
     * @param dictDto
     * @return
     */
    DictDto getByCondition(DictDto dictDto);

    /**
     * 通过dictId查询返回单个dto
     * @param dictId
     * @return
     */
    DictDto getByDictId(@Param("dictId") String dictId);

    /**
     * @method      [listByConditionByDictType]
     * @description [根据dictType查多个下级字典信息]
     * @author      [wangguoqing]
     * @version     1.0
     * @param       dictType
     * @return      List<DictDto>
     * @exception
     * @date        2017年11月17日 17:04
     */
    List<DictDto> listByConditionByDictType(@Param("dictType") String dictType);
    /**
    * @method      [listByConditionMap]
    * @description [根据申报税种查询申报周期]
    * @author      [yangruidong]
    * @version     1.0
    * @param
    * @return
    * @exception
    * @date
    */
    List<DictDto> listByConditionMap(Map map);
    /**
     * @method      [listByTaxCode]
     * @description [通过税种查询台账类型]
     * @author      [yangruidong]
     * @version     1.0
     * @param
     * @return
     * @exception
     * @date
     */
    List<DictDto> listByTaxCode(@Param("taxCode") String taxCode, @Param("period") String period);
    /**
    * @Method      listByTaxDentufy
    * @Description 通过税种鉴定查询纳税主体对应得税种，周期，台账
    * @Author      [yangruidong]
    * @Version     1.0
    * @Param       
    * @Return      
    * @Exception   
    * @Date        2017/12/5 17:51
    */
    List<DictDto> listByTaxDentufy(Map map);
    /**
     * @method      [queryTdPeriod]
     * @description [通过税种查询申报周期步骤1]
     * @author      [yangruidong]
     * @version     1.0
     * @param
     * @return
     * @exception
     * @date
     */
    DictDto queryTdPeriod(Map map);
    /**
     * @method      [listTdPeriod]
     * @description [通过税种查询申报周期步骤2]
     * @author      [yangruidong]
     * @version     1.0
     * @param
     * @return
     * @exception
     * @date
     */
    List<DictDto> listTdPeriod(Map map);

    List<DictDto> listGroupByDictType();

    /**
    * @method      [listTreeDataByDictType]
    * @description [根据类型查询字典树]
    * @author      王国庆
    * @version     1.0
    * @param        dictType 字典类型
    * @return
    * @exception
    * @date        2018年03月23日 14:34
    */
    List<TreeData> listTreeDataByDictType(@Param("dictType") String dictType);
}